home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 June: Reference Library / Dev.CD Jun 96 RL / Dev.CD Jun 96 RL.toast / Technical Documentation / develop / develop Issue 24 / develop Issue 24 code / Scriptable Database 1.0a15 / Application / ScriptableDBDocument.h < prev   
Encoding:
C/C++ Source or Header  |  1996-02-19  |  3.0 KB  |  77 lines  |  [TEXT/CWIE]

  1.  
  2. #ifndef __SCRIPTABLEDBDOCUMENT__
  3. #define __SCRIPTABLEDBDOCUMENT__
  4.  
  5. class TDatabaseDocument;
  6. class TAbstractBackingStore;
  7.  
  8. //
  9. // For class definition of TAbstractDocument
  10. //
  11. #include "AbstractDocument.h"
  12.  
  13. //
  14. // For class definition of TDatabaseDocument
  15. //
  16. #include "DatabaseDocument.h"
  17. #include "Int64.h"
  18.  
  19. #include "Debug.h"
  20.  
  21. #define clScriptableDBDocument 100
  22.  
  23. //================================================================================
  24. // Class TScriptableDBDocument
  25. //
  26. // Actually, I don't think I need to use MI here.  Containing a
  27. // TDatabaseDocument should be suficient.
  28. //================================================================================
  29. class TScriptableDBDocument : public TAbstractDocument, public TDatabaseDocument
  30. {
  31. private:
  32.     
  33. public:
  34.     DeclareClassData(TScriptableDBDocument, TAbstractDocument);
  35.  
  36.     TScriptableDBDocument() : TDatabaseDocument() {}
  37.     TScriptableDBDocument(TAbstractBackingStore* backingStore) : TDatabaseDocument(backingStore) {}
  38.     
  39.     virtual ~TScriptableDBDocument();
  40.     
  41.     static TScriptableDBDocument*        NewDatabase();
  42.     static TScriptableDBDocument*        OpenDatabase(TFSSpecification& fileSpec);
  43.     static TScriptableDBDocument*        OpenDatabase(TFSSpecification& fileSpec, Int64 requiredDocumentID);
  44.  
  45.     //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  46.     // Overrides of class TAbstractDocument
  47.     //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  48.  
  49.     virtual Int64                        DocumentIdentifier() const;
  50.     virtual Boolean                        DocumentFSSpecification(TFSSpecification& fileSpec) const;
  51.         
  52.     //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  53.     // Overrides of class TAbstractScriptableObject
  54.     //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  55.     
  56.     virtual TDescriptor                    GetProperty(const TAETransaction& t, DescType propertyName, DescType desiredType, unsigned long additionalInfo);
  57.     virtual void                        SetProperty(const TAETransaction& t, DescType propertyName, TDescriptor& data, unsigned long additionalInfo);
  58.  
  59.     virtual void                        MakeKeyDataForSelf(const TAETransaction& t, DescType& keyForm, TDescriptor& keyData);
  60.  
  61.     virtual TDescriptor                    AECommand(const TAETransaction& t, long aeCommandID, TAbstractScriptableObject* auxObjects = nil, long auxInfo = 0);
  62.     virtual TAbstractScriptableObject*    CreateNewElement(const TAETransaction& t, DescType newObjectClass, TDescriptor initialData, TDescriptor initialProperties, Boolean& usedInitialData, Boolean& usedInitialProperties);
  63.  
  64.     virtual TAbstractScriptableObject*    RepresentativeScriptingObject(const TAETransaction& t);
  65.     virtual Boolean                        SendCommandToRepresentative(const TAETransaction& t, long aeCommandID);
  66.  
  67.     //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  68.     // Methods of TScriptableDBDocument
  69.     //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  70.  
  71.     TFSSpecification                    DocumentFSSpecification();
  72.     void                                Save()                        { this->FlushChangesToDisk(); }
  73.     void                                SaveAs(TFSSpecification& fileSpec);
  74. };
  75.  
  76. #endif
  77.